package com.ruoyi.labdata.domain;

import java.util.Date;
import java.util.List;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;

/**
 * 流程任务对象 lab_flow_task
 * 
 * @author winner pan
 * @date 2022-03-10
 */
public class LabFlowTask extends LabFlowNode {
	private static final long serialVersionUID = 1L;

	/** 任务ID */
	private Long taskId;

	/** 实例ID */
	@Excel(name = "实例ID")
	private Long instanceId;
	
	private List<LabFlowTaskLog> taskLogList;
	
	public List<LabFlowTaskLog> getTaskLogList() {
		return taskLogList;
	}

	public void setTaskLogList(List<LabFlowTaskLog> taskLogList) {
		this.taskLogList = taskLogList;
	}
	
	private String operation;
	

	public String getOperation() {
		return operation;
	}

	public void setOperation(String operation) {
		this.operation = operation;
	}

	private boolean isEndNode = false;

	private boolean isStartNode = false;
	
	private boolean isCanWithDraw = false;
	
	private boolean isCanReset = false;
	
	private boolean isCanSign = false;
	
	
	public boolean isCanSign() {
		return isCanSign;
	}

	public void setCanSign(boolean isCanSign) {
		this.isCanSign = isCanSign;
	}

	public boolean isCanReset() {
		return isCanReset;
	}

	public void setCanReset(boolean isCanReset) {
		this.isCanReset = isCanReset;
	}

	public boolean isCanWithDraw() {
		return isCanWithDraw;
	}

	public void setCanWithDraw(boolean isCanWithDraw) {
		this.isCanWithDraw = isCanWithDraw;
	}
	
	

	public boolean isEndNode() {
		return isEndNode;
	}

	public void setEndNode(boolean isEndNode) {
		this.isEndNode = isEndNode;
	}

	public boolean isStartNode() {
		return isStartNode;
	}

	public void setStartNode(boolean isStartNode) {
		this.isStartNode = isStartNode;
	}

	public Long getInstanceId() {
		return instanceId;
	}

	public void setInstanceId(Long instanceId) {
		this.instanceId = instanceId;
	}

	/** 任务状态 */
	@Excel(name = "任务状态")
	private String taskStatusOpt;

	/** 办理角色 */
	//private String nodeRoles;
	
	private String nodeUsers;
	
	public String getNodeUsers() {
		return nodeUsers;
	}

	public void setNodeUsers(String nodeUsers) {
		this.nodeUsers = nodeUsers;
	}

	/** 签收人员 */
	@Excel(name = "签收人员")
	private String signUser;
	/**
	 * 用于显示签收的人员姓名
	 * */
	private String signNickName;
	

	public String getSignNickName() {
		return signNickName;
	}

	public void setSignNickName(String signNickName) {
		this.signNickName = signNickName;
	}

	/** 签收时间 */
	@JsonFormat(pattern="yyyy-MM-dd HH:mm", timezone="GMT+8")
	@Excel(name = "签收时间", width = 30, dateFormat = "yyyy-MM-dd")
	private Date signTime;

	/** 办理时间 */
	@JsonFormat(pattern="yyyy-MM-dd HH:mm", timezone="GMT+8")
	@Excel(name = "办理时间", width = 30, dateFormat = "yyyy-MM-dd")
	private Date finishTime;

	/** 办理意见 */
	private String finishComments;

	/** 办理结果 */
	@Excel(name = "办理结果")
	private String finishFlagOpt;

	/** 当前节点 */
	@Excel(name = "当前节点")
	private Integer isCurrentOpt;
	
	private String flowName;
	
	private String createBy;
	
	private Long createById;
	
	public Long getCreateById() {
		return createById;
	}

	public void setCreateById(Long createById) {
		this.createById = createById;
	}

	private String createOrgId;

	private String businessTypeOpt;
	@JsonFormat(pattern="yyyy-MM-dd HH:mm", timezone="GMT+8")
	private Date startTime;
	@JsonFormat(pattern="yyyy-MM-dd HH:mm", timezone="GMT+8")
	private Date acceptTime;
	
	

	public String getFlowName() {
		return flowName;
	}

	public void setFlowName(String flowName) {
		this.flowName = flowName;
	}

	public String getCreateBy() {
		return createBy;
	}

	public void setCreateBy(String createBy) {
		this.createBy = createBy;
	}

	public String getCreateOrgId() {
		return createOrgId;
	}

	public void setCreateOrgId(String createOrgId) {
		this.createOrgId = createOrgId;
	}

	public String getBusinessTypeOpt() {
		return businessTypeOpt;
	}

	public void setBusinessTypeOpt(String businessTypeOpt) {
		this.businessTypeOpt = businessTypeOpt;
	}

	public Date getStartTime() {
		return startTime;
	}

	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}

	public Date getAcceptTime() {
		return acceptTime;
	}

	public void setAcceptTime(Date acceptTime) {
		this.acceptTime = acceptTime;
	}

	public void setTaskId(Long taskId) {
		this.taskId = taskId;
	}

	public Long getTaskId() {
		return taskId;
	}

	public void setTaskStatusOpt(String taskStatusOpt) {
		this.taskStatusOpt = taskStatusOpt;
	}

	public String getTaskStatusOpt() {
		return taskStatusOpt;
	}

	/*public void setNodeRoles(String nodeRoles) {
		this.nodeRoles = nodeRoles;
	}

	public String getNodeRoles() {
		return nodeRoles;
	}*/

	public void setSignUser(String signUser) {
		this.signUser = signUser;
	}

	public String getSignUser() {
		return signUser;
	}

	public void setSignTime(Date signTime) {
		this.signTime = signTime;
	}

	public Date getSignTime() {
		return signTime;
	}

	public void setFinishTime(Date finishTime) {
		this.finishTime = finishTime;
	}

	public Date getFinishTime() {
		return finishTime;
	}

	public void setFinishComments(String finishComments) {
		this.finishComments = finishComments;
	}

	public String getFinishComments() {
		return finishComments;
	}

	public void setFinishFlagOpt(String finishFlagOpt) {
		this.finishFlagOpt = finishFlagOpt;
	}

	public String getFinishFlagOpt() {
		return finishFlagOpt;
	}

	public void setIsCurrentOpt(Integer isCurrentOpt) {
		this.isCurrentOpt = isCurrentOpt;
	}

	public Integer getIsCurrentOpt() {
		return isCurrentOpt;
	}

	@Override
	public String toString() {
		return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("taskId", getTaskId())
				.append("nodeId", getNodeId()).append("instanceId", getInstanceId())
				.append("taskStatusOpt", getTaskStatusOpt()).append("nodeUsers", getNodeUsers())
				.append("signUser", getSignUser()).append("signTime", getSignTime())
				.append("finishTime", getFinishTime()).append("finishComments", getFinishComments())
				.append("finishFlagOpt", getFinishFlagOpt()).append("isCurrentOpt", getIsCurrentOpt()).toString();
	}
}